|
1
|
|
|
import { ConfigModule } from '@nestjs/config'; |
|
2
|
|
|
import { AppController } from './app.controller'; |
|
3
|
|
|
import { AppService } from './app.service'; |
|
4
|
|
|
import { UsersModule } from './users/users.module'; |
|
5
|
|
|
import { AuthModule } from './auth/auth.module'; |
|
6
|
|
|
import { TypeOrmModule } from '@nestjs/typeorm'; |
|
7
|
|
|
import { User } from './users/entities/user.entity'; |
|
8
|
|
|
import { Bicycle } from './bicycles/entities/bicycle.entity'; |
|
9
|
|
|
import UserDataSeeder from './database/seeds/user-data.seed'; |
|
10
|
|
|
import BicycleSeeder from './database/seeds/bicycles-data.seed'; |
|
11
|
|
|
import ZoneSeeder from './database/seeds/zones-data.seed'; |
|
12
|
|
|
import TravelSeeder from './database/seeds/travel-data.seed'; |
|
13
|
|
|
import { Module, OnModuleInit } from '@nestjs/common'; |
|
14
|
|
|
import { DataSource } from 'typeorm'; |
|
15
|
|
|
import { BicyclesModule } from './bicycles/bicycles.module'; |
|
16
|
|
|
import { ZonesModule } from './zones/zones.module'; |
|
17
|
|
|
import { Zone } from './zones/entities/zone'; |
|
18
|
|
|
import { SpeedZone } from './zones/entities/speed-zone'; |
|
19
|
|
|
import { CitiesModule } from './cities/cities.module'; |
|
20
|
|
|
import { City } from './cities/entities/city.entity'; |
|
21
|
|
|
import { TravelModule } from './travel/travel.module'; |
|
22
|
|
|
import { Travel } from './travel/entities/travel.entity'; |
|
23
|
|
|
import { HealthModule } from './health/health.module'; |
|
24
|
|
|
import { TokensModule } from './tokens/tokens.module'; |
|
25
|
|
|
import { Token } from './tokens/entities/token.entity/token.entity'; |
|
26
|
|
|
|
|
27
|
|
|
@Module({ |
|
28
|
|
|
imports: [ |
|
29
|
|
|
ConfigModule.forRoot({ |
|
30
|
|
|
isGlobal: true, |
|
31
|
|
|
}), |
|
32
|
|
|
TypeOrmModule.forRoot({ |
|
33
|
|
|
type: 'sqlite', |
|
34
|
|
|
database: process.env.NODE_ENV === 'test' ? ':memory:' : 'data/db.sqlite', |
|
35
|
|
|
entities: [User, Bicycle, Zone, SpeedZone, City, Travel, Token], |
|
36
|
|
|
synchronize: true, |
|
37
|
|
|
}), |
|
38
|
|
|
UsersModule, |
|
39
|
|
|
AuthModule, |
|
40
|
|
|
BicyclesModule, |
|
41
|
|
|
ZonesModule, |
|
42
|
|
|
CitiesModule, |
|
43
|
|
|
TravelModule, |
|
44
|
|
|
HealthModule, |
|
45
|
|
|
TokensModule, |
|
46
|
|
|
], |
|
47
|
|
|
controllers: [AppController], |
|
48
|
|
|
providers: [AppService], |
|
49
|
|
|
}) |
|
50
|
|
|
export class AppModule implements OnModuleInit { |
|
51
|
|
|
constructor(private dataSource: DataSource) {} |
|
52
|
|
|
|
|
53
|
|
|
async onModuleInit() { |
|
54
|
|
|
if (process.env.NODE_ENV === 'development') { |
|
55
|
|
|
const userSeeder = new UserDataSeeder(); |
|
56
|
|
|
await userSeeder.run(this.dataSource); |
|
57
|
|
|
const bicycleSeeder = new BicycleSeeder(); |
|
58
|
|
|
await bicycleSeeder.run(this.dataSource); |
|
59
|
|
|
const zoneSeeder = new ZoneSeeder(); |
|
60
|
|
|
await zoneSeeder.run(this.dataSource); |
|
61
|
|
|
const travelSeeder = new TravelSeeder(); |
|
62
|
|
|
await travelSeeder.run(this.dataSource); |
|
63
|
|
|
} |
|
64
|
|
|
} |
|
65
|
|
|
} |
|
66
|
|
|
|